const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  /**
   * 打包模式
   */
  mode: 'development',
  /**
   * 打包 入口文件
   * @dependOn 共享chuck
   */
  entry: {
    index: {
      import: './src/index.js',
      dependOn: 'shared',
    },
    app: {
      import: './src/app.js',
      dependOn: 'shared',
    },
    shared: 'lodash',
  },
  /**
   * 多入口设置
   */
  optimization: {
    runtimeChunk: 'single',
  },
  /**
   * 打包出口文件
   */
  output: {
    filename: '[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
    clean: true, // 清理 打包文件夹
  },
  /**
   * 提取 chunk
   */
  optimization: {
    splitChunks: {
      chunks: 'all',
    },
  },
  /**
   * 开发工具 错误追踪
   */
  devtool: 'inline-source-map',
  /**
   * 开发依赖插件
   * webpack-dev-server 实时重新加载
   * @static 监听位置
   */
  devServer: {
    static: './dist',
  },
  /**
   * 插件
   */
  plugins: [
    new HtmlWebpackPlugin({
      title: 'Development',
    }),
  ],
  /**
   * 打包规则
   */
  module: {
    rules: [
      /**
       * css loader
       */
      {
        test: /\.css$/i,
        use: ['style-loader', 'css-loader'],
      },
      /**
       * images loader
       */
      {
        test: /\.(png|svg|jpg|jpeg|gif)$/i,
        type: 'asset/resource',
      },
    ],
  },
  devServer: {
    // proxy: {
    //   '/': 'http://www.ckmmddell.com/',
    //   changeOrigin: true
    // }
  }
};